/*
 *    Copyright (c) 2018-2025, proj All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the proj developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: proj
 */

package com.ykht.proj.coupon.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.sf.jsqlparser.statement.select.SelectItemVisitor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 服务员奖励记录表(待定)
 *
 * @author proj code generator
 * @date 2021-02-01 19:00:17
 */
@Data
@ApiModel(value = "服务员奖励记录表(待定)")
public class FxRewardVo implements Serializable {
private static final long serialVersionUID = 1L;

    /**
     * 
     */
    @ApiModelProperty(value="当前日期")
    private LocalDate today;
    @ApiModelProperty(value="")
    private Long id;
	/**
	 * 公司id
	 */
	@ApiModelProperty(value="公司id")
	private Long companyId;
	/**
	 * 品牌id
	 */
	@ApiModelProperty(value="品牌id")
	private Long brandId;
	/**
	 * 门店id
	 */
	@ApiModelProperty(value="门店id")
	private Long shopId;
	/**
	 * 服务员id
	 */
	@ApiModelProperty(value="服务员id")
	private Long waiterId;
    /**
     * 奖励类型0注册1转发2核销
     */
    @ApiModelProperty(value="奖励类型0注册1转发2核销")
    private Integer type;
    /**
     * 金额
     */
    @ApiModelProperty(value="金额")
    private BigDecimal money;
	@ApiModelProperty(value="核销金额（冗余字段）")
	private BigDecimal useMoney;
	/**
	 * 目标ID（根据type类型 连表查询）
	 */
	@ApiModelProperty(value="目标ID（根据type类型 连表查询）")
	private Long tatId;
	/**
	 * 饭友ID（C端用户）
	 */
	@ApiModelProperty(value="饭友ID（C端用户）")
	private Long fyId;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private Long createUser;
    /**
     * 修改人
     */
    @ApiModelProperty(value="修改人")
    private Long updateUser;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private LocalDateTime updateTime;
    /**
     * 0可用1删除
     */
    @ApiModelProperty(value="0可用1删除")
    private Integer delFlag;
    /**
     * 租户ID
     */
    @ApiModelProperty(value="租户ID",hidden=true)
    private Integer tenantId;


	//       ================================

	/**
	 * 登录角色类型  0系统管理员 1公司 2品牌 3门店 4服务员
	 */
	@ApiModelProperty(value="登录角色类型 0系统管理员 1公司 2品牌 3门店 4服务员")
	private Integer loginRoleType;


	/**
	 * 查看角色类型  1 服务员  2 门店  3 品牌  4公司
	 */
	@ApiModelProperty(value="查看角色类型  1 服务员  2 门店  3 品牌  4公司 ")
	private Integer lookRoleType;

	@ApiModelProperty(value="分销类型  0注册1 转发 2核销 ")
	private Integer distributionType;

	/**
	 * 奖励类型0注册1转发2核销 集合
	 */
	@ApiModelProperty(value=" 奖励类型0注册1转发2核销 集合")
	private List<Integer> typeList;

	@ApiModelProperty(value = "饭友名称（C端用户）")
	private String personName;

	@ApiModelProperty(value = "饭友电话（C端用户）")
	private String personPhone;

	@ApiModelProperty(value = "饭友图像（C端用户）")
	private String headPortrait;

	@ApiModelProperty(value = "饭友贡献佣金（C端用户）")
	private BigDecimal fanYouCommissionCount;

	@ApiModelProperty(value="饭友ID")
	private Long fanYouId;

	@ApiModelProperty(value="C端用户ID")
	private Long personId;

	@ApiModelProperty(value = "用户id(服务员)")
	private Long loginId;

	@ApiModelProperty(value = "服务员用户名")
	private String username;

	@ApiModelProperty(value="查询ID （服务员 门店 品牌 公司）")
	private List<Long> userIds;

	@ApiModelProperty(value="门店名称")
	private String shopName;

	@ApiModelProperty(value="门店电话")
	private String shopPhone;

	@ApiModelProperty(value="品牌名称")
	private String brandName;

	@ApiModelProperty(value="公司名称")
	private String companyName;

	@ApiModelProperty(value="核销优惠券统计")
	private Integer couponCount;

	@ApiModelProperty(value="核销优惠券累计佣金")
	private BigDecimal couponCommissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="转发统计")
	private Integer forwardCount;

	@ApiModelProperty(value="转发累计佣金")
	private BigDecimal forwardCommissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="邀请统计")
	private Integer invitationCount;

	@ApiModelProperty(value="邀请累计佣金")
	private BigDecimal invitationCommissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="创建开始时间")
	private LocalDateTime createStaTime;

	@ApiModelProperty(value="创建结束时间")
	private LocalDateTime createEndTime;

	@ApiModelProperty(value="转发类型 1海报 2小程序卡片")
	private Integer forwardType;

	@ApiModelProperty(value="转发标题")
	private String forwardTitle;

	@ApiModelProperty(value="任务类型：1邀请好友  2分享文章  3分享门店")
	private Integer taskType;

	@ApiModelProperty(value="优惠券编号")
	private String couponNumber;

	@ApiModelProperty(value="优惠券名称")
	private String couponName;

	@ApiModelProperty(value="优惠券类型 0无门槛 1满减")
	private Integer couponType;

	@ApiModelProperty(value="最低消费金额")
	private BigDecimal lowMoney;

	@ApiModelProperty(value="减免金额")
	private BigDecimal reductionMoney;

	@ApiModelProperty(value="消费金额")
	private BigDecimal cnMoney;

	@ApiModelProperty(value="统计金额字段")
	private BigDecimal distributionTypeMoney;

	@ApiModelProperty(value="统计字段")
	private Integer countNumber;


	@ApiModelProperty(value="核销人ID")
	private Long verificationPerson;

	@ApiModelProperty(value="核销类型  1 服务员  2 门店")
	private Integer verificationType;

	@ApiModelProperty(value="门店核销人登录ID")
	private Long shopVerificationLoginId;

	@ApiModelProperty(value="服务员核销人登录ID")
	private Long waiterVerificationLoginId;

	@ApiModelProperty(value="核销人名称")
	private String verificationPersonName;

	@ApiModelProperty(value = "服务员可提现金额")
	private BigDecimal withdrawalAmount = BigDecimal.ZERO;;

	@ApiModelProperty(value="累计佣金")
	private BigDecimal commissionCount = BigDecimal.ZERO;

	@ApiModelProperty(value="累计提现")
	private BigDecimal withdrawalCount = BigDecimal.ZERO;

	@ApiModelProperty(value="服务员id集合")
	private List<Long> waiterIdList;

	@ApiModelProperty(value = "微信昵称")
	private String nickName;

	@ApiModelProperty("时间偏移量，昨天：-1，今天 0 ， 近7天：-6")
	private Integer offsetDay; //

	@ApiModelProperty("排序 0 ： GROUP BY brand_person.id （饭友排序） ， 1：GROUP BY reward.waiter_id （服务员排序）")
	private Integer sort;

	@ApiModelProperty(value="佣金角色类型  1 B端服务员  2 C端客户")
	private Integer rewardRoleType;



}
